#ifndef _MyBasePos_H_
#define _MyBasePos_H_

#include "G4ThreeVector.hh"
#include "G4SystemOfUnits.hh"
#include "Randomize.hh"

#include "yaml-cpp/yaml.h"

#include "MyPosCreator.hh"
#include "MyBaseGen.hh"


class MyBasePos
{
public:
    MyBasePos(){};
    virtual ~MyBasePos(){};

    virtual void Initialize(YAML::Node) = 0;
    virtual std::pair<G4ThreeVector, G4ThreeVector> GenPosAndMomDir() = 0;

    G4ThreeVector ConvertArrayToV3(YAML::Node);

protected:
    G4ThreeVector m_Pos;
    G4ThreeVector m_MomDir;
};

#endif